home *** CD-ROM | disk | FTP | other *** search
/ Delphi Developer's Kit 1996 / Delphi Developer's Kit 1996.iso / power / dialer / dialer.pas < prev    next >
Pascal/Delphi Source File  |  1995-12-22  |  2KB  |  98 lines

  1. {To install this control in you VCL place it in your
  2.  C:\DELPHI\LIB directory and from IDE Options Menu select
  3.  Install Components. In the Install Components dialog
  4.  box click Add Button, then in Add Module box type
  5.  C:\DELPHI\LIB\DIALER.PAS, click OK, then in the Install
  6.  Components Dialog box click OK again and wait a while.
  7.  Dialer icon will appear in the Samples section of
  8.  your Components Palette}
  9.  
  10. unit Dialer;
  11.  
  12. interface
  13.  
  14. uses
  15.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  16.   Forms, Dialogs;
  17.  
  18. type
  19.  
  20.   TComPort = (dpCOM1,dpCOM2,dpCOM3,dpCOM4);
  21.   TMethod  = (dmTone,dmPulse);
  22.  
  23.   TDialer = class(TComponent)
  24.   private
  25.     { Private declarations }
  26.     FComPort : TComPort;
  27.     FNumberToDial : string;
  28.     FConfirm : boolean;
  29.     FMethod : TMethod;
  30.   protected
  31.     { Protected declarations }
  32.   public
  33.     { Public declarations }
  34.     procedure Execute;
  35.   published
  36.     property ComPort : TComPort read FComPort
  37.                  write FComPort;
  38.     property Confirm : boolean read FConfirm
  39.                  write FConfirm;
  40.     property Method  : TMethod read FMethod
  41.                  write FMethod;
  42.     property NumberToDial : string read FNumberToDial
  43.                  write FNumberToDial;
  44.     { Published declarations }
  45.   end;
  46.  
  47. procedure Register;
  48.  
  49. implementation
  50.  
  51. procedure Register;
  52. begin
  53.   RegisterComponents('Samples', [TDialer]);
  54. end;
  55.  
  56. procedure TDialer.Execute;
  57. var
  58.   s : string;
  59.   CId : Integer;
  60.   Status : Integer;
  61.   Buf : array[1..32] of Char;
  62. begin
  63.   if FConfirm then
  64.   begin
  65.    if MessageDlg('About to dial the number '+FNumberToDial+'. Are you sure?',
  66.       mtConfirmation, [mbYes,mbNo], 0)=mrNo then Exit;
  67.   end;
  68.   {Create a string to send to modem}
  69.   s:=Concat('ATDT',FNumberToDial,^M^J);
  70.   if FMethod=dmPulse then s[4]:='P';
  71.   {Open Com Port}
  72.   StrPCopy(@Buf,'COM ');
  73.   Buf[4]:=Chr(49+Ord(FComPort));
  74.   CId:=OpenComm(@Buf,512,512);
  75.   if CId<0 then
  76.   begin
  77.     MessageDlg('Unable to open '+StrPas(@Buf),mtError,
  78.                 [mbOk], 0);
  79.     Exit;
  80.   end;
  81.   {Send phone number to modem}
  82.   StrPCopy(@Buf,s);
  83.   Status:=WriteComm(CId,@Buf,StrLen(@Buf));
  84.   if Status>=0 then
  85.   begin
  86.     MessageDlg('Pick up the phone',mtInformation,
  87.                 [mbOk], 0);
  88.     WriteComm(CId,'ATH'^M^J,5);
  89.   end
  90.   else
  91.     MessageDlg('Unable to dial number',mtError,
  92.                 [mbOk], 0);
  93.   {Close communication port}
  94.   CloseComm(CId);
  95. end;
  96.  
  97. end.
  98.